package map;

/*
    Map集合的基本功能：
        V put(K key,V value)：添加元素
        V remove(Object key)：根据键删除键值对元素
        void clear()：移除所有的键值对元素
        boolean containsKey(Object key)：判断集合是否包含指定的键
        boolean containsValue(Object value)：判断集合是否包含指定的值(自学)
        boolean isEmpty()：判断集合是否为空
        int size()：集合的长度，也就是集合中键值对的个数
 */

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapDemo01 {
    public static void main(String[] args) {

        //1. 创建Map集合对象
        //注释01: 创建对象用的是多态的方法
        Map<String,String> map = new HashMap<>();

        //2. V put(K key,V value): 添加元素
        //注释02: 区别于Collection系集合,Map集合添加元素用的是: V put(K key, V value)
        map.put("张无忌","金花婆婆");
        map.put("郭靖","傻姑");
        map.put("杨过","郭襄");

        //3. V remove(Object key): 根据键删除键值对应元素
        System.out.println(map.remove("郭靖"));
        System.out.println(map.remove("郭襄")); // null
        //4. void clear(): 移除集合中所有元素
        //map.clear();

        //5. boolean containsKey(Object key): 判断集合是否包含指定的键
        //System.out.println(map.containsKey("郭靖")); //true
        //System.out.println(map.containsKey("郭襄"));  //false

        //6. isEmpty(): 判断集合是否为空
        //System.out.println(map.isEmpty());

        //7. int size(): 获取集合长度,也就是集合中键值对的个数
        //System.out.println(map.size());

        //注释01: 判断指定键是否存在
        //System.out.println(map.containsKey("张无忌"));
        //System.out.println(map.containsKey("金花婆婆"));

        //注释02: 判断指定键值对的值是否存在
        //System.out.println(map.containsValue("郭襄"));
        //System.out.println(map.containsValue("郭靖"));

        //注释03: Map是双列集合,它的泛型是两个,添加元素到集合的方法也不一样
//        map.put("空条承太郎","空条徐伦");
//        System.out.println(map.get("空条承太阳"));

        //8. 输出集合对象
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            String value = map.get(key);
            System.out.println(key + "," + value);

        }
    }
}
